package com.lucy.disk.constant;

import lombok.Data;

import java.util.HashSet;
import java.util.Set;

/**
 * @author kindear
 * 文件常量
 */
@Data
public class FileConst {


    /**
     * 切片大小, 1M
     */
    public static final Long CHUNK_SIZE = 1024*1024L;

    /**
     * 根目录ID
     */
    public static final Long ROOT_ID = null;

    /**
     * 上传目录
     */
    public static final String UPLOAD_FOLDER = "upload";

    /**
     * 切片目录
     */
    public static final String CHUNK_PATH = "chunk";

    /**
     * 略缩图路径
     */
    public static final String THUMBNAIL_PATH = "thumbnail";
    /**
     * 切片合成文件
     */
    public static final String FILE_TMP = "file.tmp";

    public static final Long ZERO = 0L;


    /**
     * 图片文件后缀
     */
    public static final Set<String> IMG_FILE = new HashSet<String>(){
        {
            add("bmp");
            add("jpg");
            add("png");
            add("tif");
            add("gif");
            add("jpeg");
        }
    };
    /**
     * 文档文件后缀
     */

    public static final Set<String> DOC_FILE = new HashSet<String>(){
        {
            add("doc");
            add("docx");
            add("ppt");
            add("pptx");
            add("xls");
            add("xlsx");
            add("hlp");
            add("wps");
            add("rtf");
            add("pdf");
            add("md");

        }
    };
            //Set.of("doc", "docx", "ppt", "pptx", "xls", "xlsx", "txt", "hlp", "wps", "rtf", "pdf", "md");
    /**
     * 视频文件后缀
     */
    public static final Set<String> VIDEO_FILE = new HashSet<String>(){
        {
            add("avi");
            add("mp4");
            add("mpg");
            add("mov");
            add("swf");
            add("flv");
        }
    };
            //Set.of("avi", "mp4", "mpg", "mov", "swf", "flv");
    /**
     * 音乐文件后缀
     */
    public static final Set<String> MUSIC_FILE = new HashSet<String>(){
        {
            add("wav");
            add("aif");
            add("au");
            add("mp3");
            add("ram");
            add("wma");
            add("mmf");
            add("amr");
            add("aac");
            add("flac");
        }
    };
            //Set.of("wav", "aif", "au", "mp3", "ram", "wma", "mmf", "amr", "aac", "flac");
    /**
     * 软件包文件后缀
     */
    public static final Set<String> APP_FILE = new HashSet<String>(){
        {
            add("exe");
            add("app");
            add("deb");
            add("rpm");
            add("ipa");
            add("dmg");
            add("apk");
        }
    };
            //Set.of("exe", "app", "deb", "rpm", "ipa", "dmg", "apk");
}
